home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / demos / 275 / pascal / fastread.pas < prev    next >
Pascal/Delphi Source File  |  1988-06-25  |  6KB  |  162 lines

  1. PROGRAM F_Read_Test ;
  2.  
  3. {*************************************************************}
  4. {*               Eric's Fast Text Readln                     *}
  5. {*                                                           *}
  6. {*   Written by:                                             *}
  7. {*      Eric W. Wedaa                                        *}
  8. {*      4620 East 17th Street                                *}
  9. {*      Tucson AZ, 85711                                     *}
  10. {*                                                           *}
  11. {*      BIX: EWEDAA                                          *}
  12. {*      CIS: 76515,2274                                      *}
  13. {*                                                           *}
  14. {*   Release Date: June 20, 1987.                            *}
  15. {*   Second Release Date: Feb. 21, 1988                      *}
  16. {*                                                           *}
  17. {*   Don't let it be said I don't support my users.          *}
  18. {*                                                           *}
  19. {*************************************************************}
  20. {*                                                           *}
  21. {*   Written for OSS Pascal Version 1.11                     *}
  22. {*               GEM/TOS in ROM Version 1.00                 *}
  23. {*                                                           *}
  24. {*   NOT Released in the Public Domain!                      *}
  25. {*                                                           *}
  26. {*************************************************************}
  27. {*                                                           *}
  28. {*   Design Tools included:                                  *}
  29. {*        Eric's Pascal Utilities,                           *}
  30. {*        1st Word ver 1.03, by GST,                         *}
  31. {*        Alt, By Michtron,                                  *}
  32. {*        OSS Pascal, By O.S.S. and C.C.D.                   *}
  33. {*   and, Eric's Library Disk for OSS Pascal.                *}
  34. {*                                                           *}
  35. {*************************************************************}
  36. {*                                                           *}
  37. {*   Please remember to include the types and constants that *}
  38. {* are declared in this program.                             *}
  39. {*                                                           *}
  40. {*************************************************************}
  41.  
  42. CONST
  43. {$i gemconst.pas}
  44. {$I d:\fastread.con}
  45.  
  46. TYPE
  47. {$I gemtype.pas}
  48.  
  49. {$I d:\fastread.typ}
  50.  
  51. VAR
  52.  
  53.    A_File_Name : STRING ; {   The file to be opened.                }
  54.    A_Buffer : Buffer ; {      The Fast read buffer.                 }
  55.    Text_Line : Max_String ; { The text line to be read in.          }
  56.    A_File : TEXT ; {          Text file for Pascal comparison.      }
  57.    X : INTEGER ; {            Loop variable.                        }
  58.    Start_Time, 
  59.    End_Time : LONG_INTEGER ; {Time Variables.                       }
  60.  
  61.    Count : INTEGER ;
  62. {$I gemsubs.pas}
  63. {$I d:\fastread.inc}
  64.  
  65.  
  66.  
  67. {---------------------------------}
  68.  
  69.  BEGIN ;
  70.    WRITELN ('Program starting now.') ;
  71.    WRITELN ;
  72.  
  73.    A_File_Name :=  'TestDeck.DAT' ;
  74.    Text_Line :=  '11111111111111111111111111111111111111111111111111' ;
  75. {                 12345678901234567890123456789012345678901234567890}
  76.  
  77.    WRITELN ('Writing Pascal test deck now.') ;
  78.    Start_Time :=  CLOCK ;
  79.    REWRITE (A_File, A_File_Name) ;
  80.    FOR X :=  1 TO 1000 DO
  81.       WRITELN (A_File, Text_Line) ;
  82.    CLOSE (A_File) ;
  83.    End_Time :=  CLOCK ;
  84.    WRITELN ('time for Pascal Writeln=', End_Time - Start_Time, ' seconds') ;
  85.  
  86.    WRITELN ;
  87.    WRITELN ('Writing Fast test deck now.') ;
  88.    Start_Time :=  CLOCK ;
  89.    F_Rewrite (A_Buffer, A_File_Name) ;
  90.  
  91.    WRITELN ('Just called F_Rewrite') ;
  92.  
  93.    FOR X :=  1 TO 1000 DO
  94.       F_Writeln (A_Buffer, Text_Line) ;
  95.  
  96.    WRITELN ('Calling F_Close') ;
  97.    F_Close (A_Buffer) ;
  98.    WRITELN ('Just called F_Close') ;
  99.  
  100.    End_Time :=  CLOCK ;
  101.    WRITELN ('Time for Fast Writeln=', End_Time - Start_Time, ' seconds') ;
  102.    WRITELN ;
  103.  
  104.    WRITELN ;
  105.    WRITELN ('Starting Fast Read now') ;
  106.    Start_Time :=  CLOCK ;
  107.    F_Reset (A_Buffer, A_File_Name) ;
  108.    IF NOT F_Error (A_Buffer) 
  109.      THEN 
  110.       BEGIN ;
  111.         Count := 0 ;
  112.         WHILE NOT F_Eof (A_Buffer) DO
  113.            BEGIN ;
  114.               Count := Count + 1 ;
  115.               F_Readln (A_Buffer, Text_Line) ;
  116.               IF Count > 990 
  117.                 THEN 
  118.                  BEGIN ;
  119.                    WRITELN (Count) ;
  120.                    WRITELN (Text_Line) ;
  121.                  END ;
  122.            END ;
  123.         IF (F_Rseek (A_Buffer, 0) ) 
  124.           THEN F_Readln (A_Buffer, Text_Line) ;
  125.         WRITELN (Text_Line) ;
  126.         IF (F_Rseek (A_Buffer, 52) ) 
  127.           THEN F_Readln (A_Buffer, Text_Line) ;
  128.         WRITELN (Text_Line) ;
  129.         IF (F_Rseek (A_Buffer, 15600) ) 
  130.           THEN F_Readln (A_Buffer, Text_Line) ;
  131.         WRITELN (Text_Line) ;
  132.  
  133.         WRITELN (' Fast read done') ;
  134.         F_Close (A_Buffer) ;
  135.         End_Time :=  CLOCK ;
  136.         WRITELN ('Time for fast read=', End_Time - Start_Time, ' seconds') ;
  137.         WRITELN ;
  138.       END ;
  139.  
  140.  
  141.    WRITELN ;
  142.    WRITELN ('opening pascal') ;
  143.    Start_Time :=  CLOCK ;
  144.    RESET (A_File, A_File_Name) ;
  145.    WRITELN ('opened, now reading') ;
  146.    WHILE NOT EOF (A_File) DO
  147.  
  148.       BEGIN ;
  149.          READLN (A_File, Text_Line) ;
  150. {        writeln(text_line); }
  151.       END ;
  152.    WRITELN ('done reading') ;
  153.    CLOSE (A_File) ;
  154.    End_Time :=  CLOCK ;
  155.    WRITELN ('Time for fast read=', End_Time - Start_Time, ' seconds') ;
  156.    WRITELN ;
  157.    WRITELN ('Pascal closed, Hit return to return to the desktop') ;
  158.  
  159.    READLN (Text_Line) ;
  160.  
  161.  END. 
  162.